package org.liveboardgames.agricola.model
{
    import org.liveboardgames.agricola.model.enums.ColorEnum;
    import org.liveboardgames.agricola.model.enums.HouseTypeEnum;
    import org.liveboardgames.agricola.vo.action.Action;
    import org.liveboardgames.common.dictionary.collections.HashCollection;
    import org.liveboardgames.common.dictionary.collections.IMap;
    
    import mx.collections.ListCollectionView;
    
    [Bindable]
    public class PopupModel
    {
        public static const POPUP_NO_ACTION_INDEX:int = -1;
        
        public static const POPUP_CHOOSE_RESOURCE_INDEX:int = 0;
        
        public static const POPUP_PLOUGH_FIELD_INDEX:int = 1;
        
        public static const POPUP_CHOOSE_ACTION_INDEX:int = 2;
        
        public static const POPUP_BUILD_ROOM_INDEX:int = 3;
        
        public static const POPUP_BUILD_STABLE_INDEX:int = 4;
        
        public static const POPUP_MAJOR_IMPROVEMENT_INDEX:int = 5;
        
        public static const POPUP_BAKE_INDEX:int = 6;
        
        public static const POPUP_SOW_INDEX:int = 7;
        
        public static const POPUP_ANIMALS_INDEX:int = 8;
        
        public static const POPUP_FENCES_INDEX:int = 9;
        
        public static const POPUP_HARVEST_FEED:int = 10;
        
        public static const POPUP_HARVEST_BREED:int = 11;
        
        // Popup actions
        public var currentActionPopupIndex:int = POPUP_NO_ACTION_INDEX;
        
        public var currentAction:Action;
        
        public var cost:IMap;
        
        /** Used for the Choice Resource popup. */
        public var numberOfResourcesToTake:int;
        
        /** Used for the Plough Field popup. */
        public var numberOfFieldsToPlough:int;
        
        /** Used for the Choice Action popup. */
        public var possibleActions:ListCollectionView;
        
        /** Used for the Build Room popup. */
        public var numberOfRoomsToBuild:int;
        
        public var materialOfRoomToBuild:String;
        
        /** Used for the Build Stable popup. */
        public var numberOfStablesToBuild:int;
        
        public var stableColor:String;
        
        /** Used for the Bake popup. */
        public var numberOfAvailableGrains:int;
        
        public var ovens:ListCollectionView;
        
        /** Used for the Animals popup. */
        public var animals:HashCollection;
        
        public var cookingPlaces:ListCollectionView;
        
        /** Used for the fences popup. */
        public var numberOfAvailableFences:int;
        
        public var fencesColor:ColorEnum;
        
        /** Used for the Major Improvement popup. */
        public var majorImprovements:ListCollectionView;
        
        /** Used for the harvest feed phase popup. */
        public var foodNeeded:int;
    }
}